1. Field of the Invention
The invention relates generally to information processing technology and, more specifically, to a system and method that generally provides for unifying program design time and program run time, may provide for program structure and program state to change at run time, and may provide for programs to continuously change and evolve through the addition of member functions, inputs, and outputs as the program is running, among other aspects.
2. Related Art
Computer programs today are typically constrained by the fact that they exist in one and only one of two states at a given time. These states are referred to generally as “design time” and “run time”.
“Design Time” is the state in which the program is typically represented as one or more text files containing alphanumeric characters arranged according to the requirements of a given programming language (i.e. as “code”). While a program is in this state it can be modified by a programmer or by another program capable of modifying text files, but it is inert—its expressions cannot be evaluated, its functions cannot be executed. Branching statements such as case, if/then and the like may be used during design time to provide for multiple paths of execution, but all possible end states and paths must be fully defined and coded during design time.
“Run Time”, on the other hand, is the state in which the program is being executed on a computer system. Functions are being called, expressions are being evaluated and the program itself can be described as operational—but in this state it typically cannot be changed. The capabilities of the program are bounded by the possible end states and paths that are defined during design time.
Computer programs today are typically incapable of making design time changes at runtime, and are likewise incapable of executing run time operations during design time. This approach locks systems into specific execution paths and typically requires significant investment in man hours and code revision to add new branching options, execution paths or end states to a given program.